import request from '@/utils/request'

// 用户相关API
export const userApi = {
  // 用户登录
  login(data) {
    return request({
      url: '/user/login',
      method: 'post',
      data
    })
  },

  // 用户注册
  register(data) {
    return request({
      url: '/user/register',
      method: 'post',
      data
    })
  },

  // 获取用户信息
  getUserInfo() {
    return request({
      url: '/user/info',
      method: 'get'
    })
  },

  // 更新用户信息
  updateUserInfo(data) {
    return request({
      url: '/user/info',
      method: 'put',
      data
    })
  },

  // 用户登出
  logout() {
    return request({
      url: '/user/logout',
      method: 'post'
    })
  }
}

// 旅行日记相关API
export const diaryApi = {
  // 获取日记列表
  getDiaryList(params) {
    return request({
      url: '/diary',
      method: 'get',
      params
    })
  },

  // 获取日记详情
  getDiaryDetail(id) {
    return request({
      url: `/diary/${id}`,
      method: 'get'
    })
  },

  // 创建日记
  createDiary(data) {
    return request({
      url: '/diary',
      method: 'post',
      data
    })
  },

  // 更新日记
  updateDiary(id, data) {
    return request({
      url: `/diary/${id}`,
      method: 'put',
      data
    })
  },

  // 删除日记
  deleteDiary(id) {
    return request({
      url: `/diary/${id}`,
      method: 'delete'
    })
  },

  // 上传图片
  uploadImage(data) {
    return request({
      url: '/diary/upload',
      method: 'post',
      data,
      headers: {
        'Content-Type': 'multipart/form-data'
      }
    })
  }
}

// 地点相关API
export const locationApi = {
  // 获取地点列表
  getLocationList(params) {
    return request({
      url: '/location',
      method: 'get',
      params
    })
  },

  // 搜索地点
  searchLocation(keyword) {
    return request({
      url: '/location/search',
      method: 'get',
      params: { keyword }
    })
  },

  // 添加地点
  addLocation(data) {
    return request({
      url: '/location',
      method: 'post',
      data
    })
  }
}

// 统计相关API
export const statsApi = {
  // 获取旅行统计
  getTravelStats() {
    return request({
      url: '/stats/travel',
      method: 'get'
    })
  },

  // 获取月度统计
  getMonthlyStats(year, month) {
    return request({
      url: '/stats/monthly',
      method: 'get',
      params: { year, month }
    })
  }
}

// 导出所有API
export default {
  userApi,
  diaryApi,
  locationApi,
  statsApi
}
